#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<assert.h>

//打印数组的函数
void ArrPrint(int*pa, const int len)
{
  assert(pa); //断言防止空指针
  int i = 0;
  for(i = 0; i < (int)len; i++)
    printf("%d ", pa[i]);

  printf("\n");
}

//获取随机数组的函数
int* getArr(const int n)
{
  srand((size_t)time(NULL));

  int* tmp = (int*)malloc(sizeof(int) * n);
  assert(tmp);

  int i = 0;
  for(i = 0; i < (int)n; i++)
  {
    int val = rand()%100;
    tmp[i] = val;
  }  

  return tmp;
}

int cmp(const void*e1, const void* e2)
{
  return *(int*)e1 - *(int*)e2;
}

int main()
{
  int n = 0;
  printf("请输入一个数，以控制数的量:>");
  scanf("%d", &n);

  int* pa = getArr(n);  //获取随机数
  printf("获取数组如下：\n");
  ArrPrint(pa, n);  //先打印一遍数组

  qsort(pa, n, sizeof(int), cmp); //排序函数

  printf("排序后的数组为：\n");
  ArrPrint(pa, n);

  free(pa);
  pa = NULL;

  return 0;
}
